1. Field of the Invention
The present invention relates, in general, to mass storage systems, and, more particularly, to systems and methods for hardware reordering of disk access commands in a disk drive command queue.
2. Relevant Background.
Mass storage devices such as disk drives, compact disk read only memory (CDROM), tape drives and the like are common computer system components used to store and provide access to large volumes of data and program code. Generally, mass storage devices are complex electromechanical systems that read and write data using electromagnetic and/or optical signals at precise locations on a media surface. In operation, a host processor system generates requests for access to particular stored data, and the mass storage device and associated controllers generate signals to the motors and read/write head electronics that access the information at the precise locations dictated by the commands.
In general, the host computer can generate access request commands at a much higher rate than the mass storage system can record. Also, the access requests may correspond to discontinuous locations of the physical media within the mass storage system. Significant delay occurs in locating the precise position that is subject of a particular access request. Hence, mass storage controllers have developed buffer mechanisms to perform rate adaptation, and more recently have developed to reorder requests so that the mass storage device efficiently moves the read/write head elements with respect to the media. This is particularly true in random access storage devices such as hard disk drives and CDROM drives where the controllers are designed to perform well with entirely random access requests.
Essentially, disk access commands generated by a host are placed in a command queue. Various methods are used to reorder the queued access commands and select a current command to launch. For example, one method selects the command with the shortest seek time so that the command in the queue with the shortest seek time with respect to the command currently being executed is selected as the next command to be launched. Another method selects commands in sequential cylinder order. Other known methods perform command queue reordering based on both seek time and rotational latency.
In each case, the algorithms used to reorder the command queue are implemented in software or firmware executing on a processor within the mass storage controller. This processor, however, is also responsible for generating command signals to the servo electronics and coordinating the read/write operations themselves. As areal density increases and data rates increase, the processor's resources are already taxed with these basic functions. Performing complex reordering algorithms at the same time is becoming increasingly difficult. As a result, firmware reordering algorithms stress simplicity, and may use sub-optimal reordering methods or limited size command queues to lessen the processor load. A need exists for systems and methods that improve command queue reordering processes while reducing the burden on processor resources.